﻿using System;
using System.Collections.Generic;
using System.Text;
using DAL;
using System.Data;
using System.Data.SqlClient;
using System.Web;


namespace BLL
{
    public class Varios
    {
        #region propiedades

        #region Pais

        private int _IdPais;
        public int IdPais
        {
            get { return _IdPais; }
            set { _IdPais = value; }
        }

        private string _DescPais;

        public string DescPais
        {
            get { return _DescPais; }
            set { _DescPais = value; }
        }

        
        #endregion

        #region Idioma

        private int _IdIdioma;

        public int IdIdioma
        {
            get { return _IdIdioma; }
            set { _IdIdioma = value; }
        }

        private string _DescIdioma;

        public string DescIdioma
        {
            get { return _DescIdioma; }
            set { _DescIdioma = value; }
        }

        #endregion

        #region Genero

        private int _IdGenero;

        public int IdGenero
        {
            get { return _IdGenero; }
            set { _IdGenero = value; }
        }

        private int _FK_IdProducto;

        public int FK_IdProducto
        {
            get { return _FK_IdProducto; }
            set { _FK_IdProducto = value; }
        }

        private string _DescGenero;

        public string DescGenero
        {
            get { return _DescGenero; }
            set { _DescGenero = value; }
        }

        #endregion
       
        #region Tipo Interprete

        private int _PK_TipoInterpretacion;

        public int PK_TipoInterpretacion
        {
            get { return _PK_TipoInterpretacion; }
            set { _PK_TipoInterpretacion = value; }
        }

        private string _TipoInterpDesc;

        public string TipoInterpDesc
        {
            get { return _TipoInterpDesc; }
            set { _TipoInterpDesc = value; }
        }

        #endregion




        private string _mensaje;

        public string mensaje
        {
            get { return _mensaje; }
            set { _mensaje = value; }
        }

        private int _num_error;

        public int num_error
        {
            get { return _num_error; }
            set { _num_error = value; }
        }
        #endregion

        #region variables privadas
        SqlConnection conexion;
        string mensaje_error;
        int numero_error;
        string sql;
        DataSet ds;
        #endregion

        #region metodos

        public void insertaError()
        {
            ErrorL objerror = new ErrorL();
            objerror.mensaje = _mensaje;
            objerror.num_error = _num_error;
            objerror.URL = HttpContext.Current.Request.Url.AbsoluteUri;
            objerror.Fecha = DateTime.Now;
            objerror.guardar_Error();
        }

        #region Pais

        public DataSet carga_lista_Pais()
        {
            conexion = cls_DAL.trae_conexion("Progra5", ref mensaje_error, ref numero_error);
            if (conexion == null)
            {
                //insertar en la table de errores
                insertaError();
                HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                return null;
            }
            else
            {
                sql = "usp_Pais_InfoConsultar";
                ds = cls_DAL.ejecuta_dataset(conexion, sql, true, ref mensaje_error, ref numero_error);
                if (numero_error != 0)
                {
                    //insertar en la table de errores
                    insertaError();
                    HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                    return null;
                }
                else
                {
                    return ds;
                }
            }

        }
        
        #endregion

        #region Idioma
        public DataSet carga_lista_Idioma()
        {
            conexion = cls_DAL.trae_conexion("Progra5", ref mensaje_error, ref numero_error);
            if (conexion == null)
            {
                //insertar en la table de errores
                insertaError();
                HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                return null;
            }
            else
            {
                sql = "usp_Idioma_InfoConsultar";
                ds = cls_DAL.ejecuta_dataset(conexion, sql, true, ref mensaje_error, ref numero_error);
                if (numero_error != 0)
                {
                    //insertar en la table de errores
                    insertaError();
                    HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                    return null;
                }
                else
                {
                    return ds;
                }
            }

        }
        
        #endregion

        #region Genero

        public DataSet carga_lista_Genero(int FK_IdProducto)
        {
            conexion = cls_DAL.trae_conexion("Progra5", ref mensaje_error, ref numero_error);
            if (conexion == null)
            {
                //insertar en la table de errores
                insertaError();
                HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                return null;
            }
            else
            {
                sql = "usp_Genero_InfoConsultar";
                ParamStruct[] parametros = new ParamStruct[1];
                cls_DAL.agregar_datos_estructura_parametros(ref parametros, 0, "@FK_IdProducto", SqlDbType.Int, FK_IdProducto);
                cls_DAL.conectar(conexion, ref mensaje_error, ref numero_error);
                cls_DAL.ejecuta_sqlcommand(conexion, sql, true, parametros, ref mensaje_error, ref numero_error);
                if (numero_error != 0)
                {
                    //insertar en la table de errores
                    insertaError();
                    HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                    return null;
                }
                else
                {
                    return ds;
                }
            }

        }
        
        #endregion

        #region TipoInterprete

        public DataSet carga_lista_TipoInterprete()
        {
            conexion = cls_DAL.trae_conexion("Progra5", ref mensaje_error, ref numero_error);
            if (conexion == null)
            {
                //insertar en la table de errores
                insertaError();
                HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                return null;
            }
            else
            {
                sql = "usp_TipoInterprete_InfoConsultar";
                ds = cls_DAL.ejecuta_dataset(conexion, sql, true, ref mensaje_error, ref numero_error);
                if (numero_error != 0)
                {
                    //insertar en la table de errores
                    insertaError();
                    HttpContext.Current.Response.Redirect("frm_Error.aspx?error=" + numero_error.ToString() + "&men=" + mensaje_error);
                    return null;
                }
                else
                {
                    return ds;
                }
            }

        }

        #endregion

        
        #endregion
    }
}
